package com.yun.zf.system.service;

import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yun.zf.common.admin.domain.SysDept;
import com.yun.zf.common.admin.dto.dept.TreeSelect;
import com.yun.zf.common.admin.model.sys.DeptAddMo;
import com.yun.zf.common.admin.model.sys.DeptEditMo;
import com.yun.zf.common.admin.model.sys.DeptSearchMo;

import java.util.List;

public interface ISysDeptService extends IService<SysDept> {

    public  SysDept getParentId(long parentId);


    public IPage<SysDept> getDeptTree(DeptSearchMo deptMo);

    public List<Tree<String>> editDeptTree(  List<SysDept>  depts ,int deep);


    /**
     * 校验部门名称是否唯一
     * @return 结果
     */
    public String checkDeptNameUnique(Long deptId, Long parentId,String deptName);


    public  int updateDept(DeptEditMo dept);

    /**
     * 新增合作公司
     * @param dept
     * @return
     */
    public  int insertDept(DeptAddMo dept);

    public SysDept getLastOrder(long parentId);

    public SysDept getDeptByDeptId(Long deptId);

    public List<SysDept> selectDeptList(Long provinceCode,Long cityCode);




    /**
     * 更改部门状态，如果一级部门更改状态，则更改所有二级部门状态
     * @param deptId
     * @param status
     */
    public void changeStatus(Long deptId,int status,int level);

    public List<SysDept> getDeptsByParent(Long parentId);


}
